1. Field of the Invention
The present invention generally relates to a system and method for analyzing a program and, more particularly, for decreasing the program analysis operation overhead.
2. Description of Related Art
As is known in the computer and software arts, when a software program is developed, there is generally a need to speed up the execution of the software program. One tool to assist a programmer in speeding up a software program are program analysis tools. Program analysis tools are used for the purpose of analyzing software programs in search of specific information, such as, for instance, analysis tools can be used to compute the number of times a branch is taken, versus executed, during the lifetime of the software program.
Programming analysis tools can also insert probes into a software program before a particular instruction that needs to be probed. This probe code will increment decrement a counter that is located in memory, i.e., such is a global data structure. Finally, when a software program is ready to end, the entire global data structure for the counters can be written to an output file in a human readable form. This allows the programmers to analyze the application program to determine instances and scenarios in which the application program may be modified to increase its efficiency.
However, there is a problem associated with these counters. Because the counters may be updated at anytime, the counters are loaded into memory as global data structures. These global data structures cause the memory footprint of the program analysis system to be dramatically increased, even if many of these counters are never accessed because the instructions being probed are never executed.
Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.